/////////////////////////////////////////////////////////////////////////////////////
// Header Protection
#ifndef _MATRIX_H_
#define _MATRIX_H_

/////////////////////////////////////////////////////////////////////////////////////
// Include Files
#include "Types\Vector.h"

/////////////////////////////////////////////////////////////////////////////////////
// matrix_t Declarations

union matrix_t
{
	vector_t row[4];
	float_t  arr[16];
	float_t  mat[4][4];
};

matrix_t Matrix();

matrix_t MatrixMul( matrix_t const &_lhs, matrix_t const &_rhs );

matrix_t MatrixTranslation( float_t _fX, float_t _fY, float_t _fZ );

matrix_t MatrixRotationX( float_t _fAngle );

matrix_t MatrixRotationY( float_t _fAngle );

matrix_t MatrixRotationZ( float_t _fAngle );

/////////////////////////////////////////////////////////////////////////////////////
// Header Protection
#endif // _MATRIX_H_
